package com.labot.service.impl;

import com.labot.dao.EnvioDao;
import com.labot.model.Envio;
import com.labot.model.EnvioBitacora;
import com.labot.service.EnvioManager;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * Implementation of RoleManager interface.
 *
 * @author <a href="mailto:dan@getrolling.com">Dan Kibler</a>
 */
@Service("envioManager")
public class EnvioManagerImpl extends GenericManagerImpl<Envio, Long> implements EnvioManager {
    EnvioDao envioDao;

    @Autowired
    public EnvioManagerImpl(EnvioDao envioDao) {
        super(envioDao);
        this.envioDao = envioDao;
    }

	@Override
	public void setEnvioDao(EnvioDao envioDao) {
		 this.envioDao = envioDao;
		
	}

	@Override
	public List<Envio> getEnviosByCentro(Long id) throws Exception {
		return envioDao.getEnviosbyCentro(id);
	}
	
	public List<Envio> getEnviosporRango(Date fechadesde, Date fechahasta) throws Exception {
		return envioDao.getEnviosporRango(fechadesde, fechahasta);
	}
	
	public List<EnvioBitacora> getBitacorasEnvio(Long idEnvio) throws Exception {
		return envioDao.getBitacoras(idEnvio);
	}

	@Override
	public List<Envio> getEnvios() {
		return envioDao.getEnvios();
	}

	@Override
	public Envio saveEnvio(Envio envio) {
		return envioDao.saveEnvio(envio);
	}

	@Override
	public void removeEnvio(Envio envio) {
		envioDao.remove(envio);
		
	}

	@Override
	public void removeEnvio(String envioId) {
		envioDao.remove(Long.parseLong(envioId));
		
	}

	@Override
	public Envio buscarEnvio(Long id) {
		return envioDao.buscarEnvio(id);
	}
}